<?php

/**
 *
 */
class Ct_hoadon  extends CI_Model {
    private $id;
    private $Status_id;
    private $so_hoadon;
    private $Status_so_hoadon;
    private $masp;
    private $Status_masp;
    private $soluong;
    private $Status_soluong;
    private $dongia;
    private $Status_dongia;

    public function __construct() {
        parent::__construct();
        $this->load->database();
        $this->Oncreate();
   }

    private function Oncreate() {
        $this->id = "";
        $this->Status_id = 0;
        $this->so_hoadon = "";
        $this->Status_so_hoadon = 0;
        $this->masp = "";
        $this->Status_masp = 0;
        $this->soluong = "";
        $this->Status_soluong = 0;
        $this->dongia = "";
        $this->Status_dongia = 0;
    }

    public function set_id($data) {
        $this->id = $data;
        $this->Status_id = 1;
    }

    public function set_so_hoadon($data) {
        $this->so_hoadon = $data;
        $this->Status_so_hoadon = 1;
    }

    public function set_masp($data) {
        $this->masp = $data;
        $this->Status_masp = 1;
    }

    public function set_soluong($data) {
        $this->soluong = $data;
        $this->Status_soluong = 1;
    }

    public function set_dongia($data) {
        $this->dongia = $data;
        $this->Status_dongia = 1;
    }

    public function get_id() {
        return $this->id;
    }

    public function get_so_hoadon() {
        return $this->so_hoadon;
    }

    public function get_masp() {
        return $this->masp;
    }

    public function get_soluong() {
        return $this->soluong;
    }

    public function get_dongia() {
        return $this->dongia;
    }

    /**
     *
     * Get  Oject
     *
     * @strWhere    Mệnh đề where
     * @return     no return. đưa các giá trị vào object gọi hàm()
     *
     */
    public function getObject($strWhere) {
        $this->Oncreate();
        $this->db->where($strWhere, NULL, FALSE);
        $query = $this->db->get("ct_hoadon");
        $ar = $query->row_array();
        if (!empty($ar)) {
            $this->id = $ar["id"];
            $this->so_hoadon = $ar["so_hoadon"];
            $this->masp = $ar["masp"];
            $this->soluong = $ar["soluong"];
            $this->dongia = $ar["dongia"];
        }
    }

    /**
     *
     * Insert Object into database
     *
     */
    public function Save() {
        $data = array("id" => $this->id,"so_hoadon" => $this->so_hoadon,"masp" => $this->masp,"soluong" => $this->soluong,"dongia" => $this->dongia);
        $this->db->insert("ct_hoadon", $data);
    }

    /**
     *
     * Update Object có các field sử dụng hàm set_()
     *
     * @strWhere=null update tất cả các row trong database
     *
     */
    public function UpdateField($strWhere = NULL) {
        $arr = array();
        if ($this->Status_id == 1)
            $arr["id"] = $this->id;
        if ($this->Status_so_hoadon == 1)
            $arr["so_hoadon"] = $this->so_hoadon;
        if ($this->Status_masp == 1)
            $arr["masp"] = $this->masp;
        if ($this->Status_soluong == 1)
            $arr["soluong"] = $this->soluong;
        if ($this->Status_dongia == 1)
            $arr["dongia"] = $this->dongia;
        if (!empty($strWhere)) {
         $this->db->where($strWhere, NULL, FALSE);
        }
        $this->db->update("ct_hoadon", $arr);
    }

    /**
     *
     * Get list Oject
     *
     * @strFieldName         Các field cần lấy dữ liệu
     * @strWhere             Mệnh đề where
     * @strOrderby           Ex: 'title desc, name asc'
     * @Limit_Number_Row     Số dòng dữ liệu cần lấy ra
     * @Limit_Start_Index    Vị trí bắt đầu lấy dữ liệu
     *     foreach ($t as $value) {
           $ob=(object)($value);
           echo $ob->ct_hoadonname;
           echo $ob->pass;
       }
     * @return               result_object();
     *
     */
    public function getListObjectForCthd($so_hoadon) {
       
        $this->db->select("so_hoadon,ct_hoadon.masp,tensp,ct_hoadon.soluong,ct_hoadon.dongia");
        $this->db->from("ct_hoadon");
        $this->db->join("sanpham", "sanpham.masp=ct_hoadon.masp");
        $this->db->where("so_hoadon",$so_hoadon);
        $query = $this->db->get();
        return $query->result_array();
    }
     public function getListObject($strFieldName = NULL, $strWhere = NULL, $strOrderby = NULL, $Limit_Number_Row = NULL, $Limit_Start_Index = NULL) {
        if (!is_null($strWhere)) {
            $this->db->where($strWhere, NULL, FALSE);
        }
        if (!is_null($strFieldName)) {
            $this->db->select($strFieldName);
        }
        if (!is_null($strOrderby)) {
            $this->db->order_by($strOrderby);
        }
        if (!is_null($Limit_Number_Row)) {
            if (!is_null($Limit_Start_Index))
                $this->db->limit($Limit_Number_Row, $Limit_Start_Index);
            else {
                $this->db->limit($Limit_Number_Row);
            }
        }
        $query = $this->db->get("ct_hoadon");
        return $query->result_object();
    }

    /**
     *
     * Get list Oject
     *
     * @strWhere    Mệnh đề where. Null sẽ xóa hết dữ liệu của table
     * @return      no
     *
     */
    public function Delete($strWhere = NULL) {
        if (!is_null($strWhere)) {
            $this->db->where($strWhere, NULL, FALSE);
            $this->db->delete("ct_hoadon");
        }        
       else $this->db->empty_table('ct_hoadon');
    }

    /**
     *
     * Lây max giá trị kiểu int của 1 trường dữ liệu
     *
     * @strFieldName    Trường dữ liệu cần lấy max(1 trường duy nhất)
     * @strWhere        Mệnh đề where
     * @return          1 giá trị kiểu string
     *
     */
    public function Max($strFieldName, $strWhere = NULL) {
        if (!is_null($strWhere))
            $this->db->where($strWhere, NULL, FALSE);
        $this->db->select_max($strFieldName);
        $query = $this->db->get('ct_hoadon');
        $ob = $query->row_array();
        return $ob[$strFieldName];
    }

}

?>